﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace QuanLyThuChi
{
    public partial class frmQuanLyDVT : Form
    {
        public frmQuanLyDVT()
        {
            InitializeComponent();
        }
        public_function pf = new public_function();
        connect cn = new connect();
        bool them = true;
        int vitri = 0;
        private void load_dulieu()
        {
            gridQuanLyDVT.DataSource = pf.getData("DVT_DS");
        }
        private void frmQuanLyDVT_Load(object sender, EventArgs e)
        {
            load_dulieu();
            battatcontrol(false);
        }

        private void gridQuanLyDVT_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                gridQuanLyDVT.CurrentRow.Selected = true;
                txtDVT.Text = gridQuanLyDVT.CurrentRow.Cells["TenDVT"].Value.ToString();
                txtGhiChu.Text = gridQuanLyDVT.CurrentRow.Cells["GhiChu"].Value.ToString();
            }
            catch
            {
            }
        }
        private void battatcontrol(bool val)
        {
            btnThem.Enabled = !val;
            btnSua.Enabled = !val;
            btnXoa.Enabled = !val;
            gridQuanLyDVT.Enabled = !val;
            txtDVT.Enabled = val;
            txtGhiChu.Enabled = val;
            btnLuu.Enabled = val;
        }
        private void btnThem_Click(object sender, EventArgs e)
        {
            them = true;
            battatcontrol(true);
            txtDVT.Text = "";
            txtGhiChu.Text = "";
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            them = false;
            battatcontrol(true);
            vitri = gridQuanLyDVT.CurrentRow.Index;
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (txtDVT.Text == "")
            {
                MessageBox.Show("Bạn chưa nhập tên đơn vị tính", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtDVT.Focus();
            }
            else
            {
                if (them == true)
                {
                    OleDbCommand cmd = new OleDbCommand("DVT_Insert", cn.ketnoi());
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new OleDbParameter("tendvt", OleDbType.LongVarChar)).Value = txtDVT.Text;
                    cmd.Parameters.Add(new OleDbParameter("ghichu", OleDbType.LongVarChar)).Value = txtGhiChu.Text;
                    if (cmd.ExecuteNonQuery() == 1)
                    {
                        MessageBox.Show("Thêm thu thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        load_dulieu();
                        battatcontrol(false);
                    }
                    else
                    {
                        MessageBox.Show("Lỗi trong quá trình thêm", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        load_dulieu();

                    }
                }
                else
                {
                    OleDbCommand cmd_update = new OleDbCommand("DVT_Update", cn.ketnoi());
                    cmd_update.CommandType = CommandType.StoredProcedure;
                    cmd_update.Parameters.Add(new OleDbParameter("tendvt", OleDbType.LongVarChar)).Value = txtDVT.Text;
                    cmd_update.Parameters.Add(new OleDbParameter("ghichu", OleDbType.LongVarChar)).Value = txtGhiChu.Text;
                    cmd_update.Parameters.Add(new OleDbParameter("madvt", OleDbType.Integer)).Value = gridQuanLyDVT.CurrentRow.Cells["MaDVT"].Value;
                    if (cmd_update.ExecuteNonQuery() == 1)
                    {
                        MessageBox.Show("Cập nhật thông tin thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        load_dulieu();
                        battatcontrol(false);
                        gridQuanLyDVT.CurrentCell = gridQuanLyDVT.Rows[vitri].Cells[0];
                        gridQuanLyDVT.Rows[vitri].Selected = true;
                    }
                    else
                    {
                        MessageBox.Show("Lỗi trong quá trình cập nhật", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        load_dulieu();

                    }
                }
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn có chắc chắn muốn xóa không?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                OleDbCommand cmd = new OleDbCommand("DVT_Delete", cn.ketnoi());
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new OleDbParameter("mathu", OleDbType.Integer)).Value = gridQuanLyDVT.CurrentRow.Cells["MaDVT"].Value;
                try
                {
                    if (cmd.ExecuteNonQuery() == 1)
                    {
                        MessageBox.Show("Bạn đã xóa dữ liệu thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        load_dulieu();
                        battatcontrol(false);
                    }
                }
                catch
                {
                    MessageBox.Show("Bạn không thể xóa đơn vị tính này vì có liên quan đến các dữ liệu khác", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            load_dulieu();
            battatcontrol(false);
        }
    }
}
